#!/usr/bin/env python3
# _*_ coding:utf-8 _*_
"""
    第一行注释是为了告诉Linux/OS X系统，这是一个Python可执行程序，Windows系统会忽略这个注释；
    第二行注释是为了告诉Python解释器，按照UTF-8编码读取源代码，否则，你在源代码中写的中文输出可能会有乱码。"""

# 对于单个字符的编码，Python提供了ord()函数获取字符的整数表示，chr()函数把编码转换为对应的字符：
print(ord('A'))
print(ord('中'))
print(chr(97))
print(chr(25991))

# 由于Python的字符串类型是str，在内存中以Unicode表示，一个字符对应若干个字节。如果要在网络上传输，或者保存到磁盘上，就需要把str变为以字节为单位的bytes。
# Python对bytes类型的数据用带b前缀的单引号或双引号表示：x = b'ABC'
# 要注意区分'ABC'和b'ABC'，前者是str，后者虽然内容显示得和前者一样，但bytes的每个字符都只占用一个字节。
# 以Unicode表示的str通过encode()方法可以编码为指定的bytes  要把bytes变为str，就需要用decode()方法：
print('ABC'.encode('ascii'))
print('中文'.encode('utf-8'))
print(b'ABC'.decode('ascii'))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))
# 如果bytes中只有一小部分无效的字节，可以传入errors='ignore'忽略错误的字节：
print(b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore'))
# len()计算str包含多少个字符
print(len('ABC'))
print(len('中文'))
# len()计算bytes中字节数
print(len(b'ABC'))
print(len(b'\xe4\xb8\xad\xe6\x96\x87'))
print(len('中文'.encode('utf-8')))

#格式化字符串
print("Hello %s" % 'Daniel')
print("Hello %s,you have %d apples" % ('Daniel',24))
print("Hello %s,you have %s apples" % ('Daniel-Hua',24))
"""
%运算符就是用来格式化字符串的
占位符	替换内容
%d	    整数
%f	    浮点数
%s	    字符串
%x	    十六进制整数
"""
#format()
print("hello {0},你的成绩提升了{1}%,提高了{2:.2f}%".format("小明",21.125,21.125))
#f-string
r=2.5
s=3.14*r**2
print(f'The area of a circle with radius {r} is {s:.2f}')

